package com.yuanqi.service;

import com.yuanqi.vo.InventoryStatsVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 库存统计服务接口
 */
public interface InventoryStatsService {
    
    /**
     * 获取库存统计列表
     * @param params 查询参数
     * @return 库存统计列表
     */
    List<InventoryStatsVO> getInventoryStatsList(Map<String, Object> params);
    
    /**
     * 获取库存统计总数
     * @param params 查询参数
     * @return 总数
     */
    long getInventoryStatsCount(Map<String, Object> params);
    
    /**
     * 获取库存统计数据
     * @param params 查询参数
     * @return 统计数据
     */
    Map<String, Object> getInventoryStats(Map<String, Object> params);
    
    /**
     * 获取库存统计概览
     * @param params 查询参数
     * @return 概览数据
     */
    Map<String, Object> getInventoryOverview(Map<String, Object> params);
    
    /**
     * 导出库存统计报表
     * @param params 查询参数
     * @param response HTTP响应
     */
    void exportInventoryStats(Map<String, Object> params, HttpServletResponse response);
    
    /**
     * 获取仓库库存价值分布数据
     * @param params 查询参数
     * @return 仓库库存价值数据
     */
    List<Map<String, Object>> getWarehouseValueData(Map<String, Object> params);
    
    /**
     * 获取商品分类库存数量分布数据
     * @param params 查询参数
     * @return 分类库存数量数据
     */
    List<Map<String, Object>> getCategoryQuantityData(Map<String, Object> params);
}